// 获取常用时间
import dayjs from 'dayjs';
import 'dayjs/locale/zh-cn'; // 导入中文语言包
import relativeTime from 'dayjs/plugin/relativeTime';
// 配置 day.js 插件和语言
dayjs.extend(relativeTime);
dayjs.locale('zh-cn');

export const LAST_7_DAYS = [
  dayjs().subtract(7, 'day').format('YYYY-MM-DD'),
  dayjs().subtract(1, 'day').format('YYYY-MM-DD'),
];

export const LAST_30_DAYS = [
  dayjs().subtract(30, 'day').format('YYYY-MM-DD'),
  dayjs().subtract(1, 'day').format('YYYY-MM-DD'),
];

/**
 * 格式化日期时间（用于请求参数）
 * @param date 日期字符串或Date对象
 * @returns 格式化后的日期时间字符串 YYYY-MM-DD HH:mm:ss
 */
export const formatDateTime = (date: string | Date) => {
  if (!date) return '';
  return dayjs(date).format('YYYY-MM-DD HH:mm:ss');
};

/**
 * 格式化日期（用于显示）
 * @param date 日期字符串或Date对象
 * @returns 格式化后的日期字符串 YYYY-MM-DD
 */
export const formatDate = (date: string | Date) => {
  return dayjs(date).format('YYYY-MM-DD');
};

/**
 * 格式化相对时间
 * @param date 日期字符串或Date对象
 * @returns 格式化后的相对时间字符串
 */
export const formatRelativeTime = (date: string | Date) => {
  return dayjs(date).fromNow();
};
